 /**
 * jims
 */
 package com.jims.master.modules.sync.entity;


import com.fasterxml.jackson.annotation.JsonFormat;
import com.jims.master.common.persistence.DataEntity;
import org.hibernate.validator.constraints.Length;

import java.util.Date;
import java.util.List;

 /**
 * 检验记录主表Entity
 * @author ct
 * @version 2017-11-20
 */
public class Lab extends DataEntity<Lab> {
	
	private static final long serialVersionUID = 1L;
	private String visitId;		// 住院id
	private String clinicId;		// 门诊id
	private String orgId;		// 医疗机构组织机构代码
	private String specialLab;		// 特殊检查标志
	private String billingDept;		// 开单科室
	private String labDept;		// 检验报告科室
	private Date labReportDate;		// 检验报告曰期
	private String labSamplingNo;		// 检验标本号
	private String quantitativeResult;		// 检验定量结果
	private String quantitativeResultUnit;		// 检验定量结果计量单位
	private String labResultCode;		// 检验结果代码
	private String applyOrgName;		// 检验申请机构名称
	private String applyDept;		// 检验申请科室
	private String labApplyNo;		// 电子申请单编号
	private String labRemark;		// 检验报告备注
	private String labNum;		// 检验报告单编号
	private String labOrgName;		// 检验报告机构名称
	private String labResult;		// 检验报告结果
	private Date samplingDate;		// 标本采样日期时间
	private String samplingType;		// 标本类别
	private String samplingStatus;		// 标本状态
	private String labName;		// 检验方法名称
	private String labTechnicianName;		// 检验技师签名
	private String labType;		// 检验类别
	private Date labDate;		// 检验日期
	private String labDoctor;		// 检验医师签名
	private Date receiveDate;		// 接收标本日期时间
	private String auditingDoctor;		// 审核医师签名
	private String labSamplingName;  //检验标本名称

	 public String getLabSamplingName() {
		 return labSamplingName;
	 }

	 public void setLabSamplingName(String labSamplingName) {
		 this.labSamplingName = labSamplingName;
	 }

	 private List<LabDetails> labDetailsList;

	 public List<LabDetails> getLabDetailsList() {
		 return labDetailsList;
	 }

	 public void setLabDetailsList(List<LabDetails> labDetailsList) {
		 this.labDetailsList = labDetailsList;
	 }

	 public Lab() {
		super();
	}

	public Lab(String id){
		super(id);
	}

	@Length(min=0, max=64, message="住院id长度必须介于 0 和 64 之间")
	public String getVisitId() {
		return visitId;
	}

	public void setVisitId(String visitId) {
		this.visitId = visitId;
	}
	
	@Length(min=0, max=64, message="门诊id长度必须介于 0 和 64 之间")
	public String getClinicId() {
		return clinicId;
	}

	public void setClinicId(String clinicId) {
		this.clinicId = clinicId;
	}
	
	@Override
    @Length(min=0, max=64, message="医疗机构组织机构代码长度必须介于 0 和 64 之间")
	public String getOrgId() {
		return orgId;
	}

	@Override
    public void setOrgId(String orgId) {
		this.orgId = orgId;
	}
	
	@Length(min=0, max=1, message="特殊检查标志长度必须介于 0 和 1 之间")
	public String getSpecialLab() {
		return specialLab;
	}

	public void setSpecialLab(String specialLab) {
		this.specialLab = specialLab;
	}
	
	@Length(min=0, max=20, message="开单科室长度必须介于 0 和 20 之间")
	public String getBillingDept() {
		return billingDept;
	}

	public void setBillingDept(String billingDept) {
		this.billingDept = billingDept;
	}
	
	@Length(min=0, max=50, message="检验报告科室长度必须介于 0 和 50 之间")
	public String getLabDept() {
		return labDept;
	}

	public void setLabDept(String labDept) {
		this.labDept = labDept;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getLabReportDate() {
		return labReportDate;
	}

	public void setLabReportDate(Date labReportDate) {
		this.labReportDate = labReportDate;
	}
	
	@Length(min=0, max=20, message="检验标本号长度必须介于 0 和 20 之间")
	public String getLabSamplingNo() {
		return labSamplingNo;
	}

	public void setLabSamplingNo(String labSamplingNo) {
		this.labSamplingNo = labSamplingNo;
	}
	
	public String getQuantitativeResult() {
		return quantitativeResult;
	}

	public void setQuantitativeResult(String quantitativeResult) {
		this.quantitativeResult = quantitativeResult;
	}
	
	@Length(min=0, max=20, message="检验定量结果计量单位长度必须介于 0 和 20 之间")
	public String getQuantitativeResultUnit() {
		return quantitativeResultUnit;
	}

	public void setQuantitativeResultUnit(String quantitativeResultUnit) {
		this.quantitativeResultUnit = quantitativeResultUnit;
	}
	
	@Length(min=0, max=1, message="检验结果代码长度必须介于 0 和 1 之间")
	public String getLabResultCode() {
		return labResultCode;
	}

	public void setLabResultCode(String labResultCode) {
		this.labResultCode = labResultCode;
	}
	
	@Length(min=0, max=70, message="检验申请机构名称长度必须介于 0 和 70 之间")
	public String getApplyOrgName() {
		return applyOrgName;
	}

	public void setApplyOrgName(String applyOrgName) {
		this.applyOrgName = applyOrgName;
	}
	
	@Length(min=0, max=50, message="检验申请科室长度必须介于 0 和 50 之间")
	public String getApplyDept() {
		return applyDept;
	}

	public void setApplyDept(String applyDept) {
		this.applyDept = applyDept;
	}
	
	@Length(min=0, max=20, message="电子申请单编号长度必须介于 0 和 20 之间")
	public String getLabApplyNo() {
		return labApplyNo;
	}

	public void setLabApplyNo(String labApplyNo) {
		this.labApplyNo = labApplyNo;
	}
	
	@Length(min=0, max=100, message="检验报告备注长度必须介于 0 和 100 之间")
	public String getLabRemark() {
		return labRemark;
	}

	public void setLabRemark(String labRemark) {
		this.labRemark = labRemark;
	}
	
	@Length(min=0, max=20, message="检验报告单编号长度必须介于 0 和 20 之间")
	public String getLabNum() {
		return labNum;
	}

	public void setLabNum(String labNum) {
		this.labNum = labNum;
	}
	
	@Length(min=0, max=70, message="检验报告机构名称长度必须介于 0 和 70 之间")
	public String getLabOrgName() {
		return labOrgName;
	}

	public void setLabOrgName(String labOrgName) {
		this.labOrgName = labOrgName;
	}
	
	@Length(min=0, max=200, message="检验报告结果长度必须介于 0 和 200 之间")
	public String getLabResult() {
		return labResult;
	}

	public void setLabResult(String labResult) {
		this.labResult = labResult;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getSamplingDate() {
		return samplingDate;
	}

	public void setSamplingDate(Date samplingDate) {
		this.samplingDate = samplingDate;
	}
	
	@Length(min=0, max=20, message="标本类别长度必须介于 0 和 20 之间")
	public String getSamplingType() {
		return samplingType;
	}

	public void setSamplingType(String samplingType) {
		this.samplingType = samplingType;
	}
	
	@Length(min=0, max=20, message="标本状态长度必须介于 0 和 20 之间")
	public String getSamplingStatus() {
		return samplingStatus;
	}

	public void setSamplingStatus(String samplingStatus) {
		this.samplingStatus = samplingStatus;
	}
	
	@Length(min=0, max=100, message="检验方法名称长度必须介于 0 和 100 之间")
	public String getLabName() {
		return labName;
	}

	public void setLabName(String labName) {
		this.labName = labName;
	}
	
	@Length(min=0, max=50, message="检验技师签名长度必须介于 0 和 50 之间")
	public String getLabTechnicianName() {
		return labTechnicianName;
	}

	public void setLabTechnicianName(String labTechnicianName) {
		this.labTechnicianName = labTechnicianName;
	}
	
	@Length(min=0, max=100, message="检验类别长度必须介于 0 和 100 之间")
	public String getLabType() {
		return labType;
	}

	public void setLabType(String labType) {
		this.labType = labType;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getLabDate() {
		return labDate;
	}

	public void setLabDate(Date labDate) {
		this.labDate = labDate;
	}
	
	@Length(min=0, max=50, message="检验医师签名长度必须介于 0 和 50 之间")
	public String getLabDoctor() {
		return labDoctor;
	}

	public void setLabDoctor(String labDoctor) {
		this.labDoctor = labDoctor;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getReceiveDate() {
		return receiveDate;
	}

	public void setReceiveDate(Date receiveDate) {
		this.receiveDate = receiveDate;
	}
	
	@Length(min=0, max=50, message="审核医师签名长度必须介于 0 和 50 之间")
	public String getAuditingDoctor() {
		return auditingDoctor;
	}

	public void setAuditingDoctor(String auditingDoctor) {
		this.auditingDoctor = auditingDoctor;
	}
	
}